Add type-filter chips and text search to Expose Targets picker#13
Merged
Conversation
The Custom View Builder's AvailableExposeTargets list is a single flat, alphabetically-sorted list of every exposable qualified name in the workspace. For large models this list grows to many pages with no way to narrow it down, forcing users to scroll extensively to find the element they want to expose. This change computes a human-readable type label for each candidate element (from SysmlDefinitionNode.DefinitionKeyword, SysmlFeatureNode.FeatureKeyword, literal labels for package/dependency/ satisfy nodes, and a defensive fallback for any future node kind), and adds a filter UI above the existing list: removable type-filter chips (OR semantics across chips), a + button with a flyout to add new type filters, and a text box for case-insensitive substring search (ANDed with the type filter). The list defaults to filtering by part since that's the most common expose target, while still allowing users to widen or change the filter as needed. The existing ListBox keeps its name and selection/double-click wiring unchanged, now bound to the filtered DisplayedExposeTargets instead of the raw AvailableExposeTargets, so existing add-target behavior is unaffected. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a comprehensive filtering system for the "Expose Targets" picker in the View Builder Dialog, making it much easier for users to find and select elements in large workspaces. Users can now filter the picker by one or more type-label chips (e.g., "part", "package") with OR semantics, and further narrow results with a case-insensitive text search (AND semantics). The UI and ViewModel have been updated to support these features, and documentation and requirements have been expanded to describe and verify the new behaviors.
UI and User Experience Improvements
src/DemaConsulting.SysML2Workbench/AppShellSubsystem/ViewBuilderDialogView.axaml,src/DemaConsulting.SysML2Workbench/AppShellSubsystem/ViewBuilderDialogView.axaml.cs, [1] [2] [3]ViewModel and Filtering Logic
src/DemaConsulting.SysML2Workbench/AppShellSubsystem/ViewBuilderDialogViewModel.cs, [1] [2] [3]Documentation and Requirements
docs/design/sysml2-workbench/app-shell-subsystem/view-builder-dialog.md, [1] [2];docs/user_guide/getting_started.md, [3]docs/reqstream/sysml2-workbench/app-shell-subsystem/view-builder-dialog.yaml, [1];docs/verification/sysml2-workbench/app-shell-subsystem/view-builder-dialog.md, [2]